+2006-05-23 Alexander Larsson <alexl@redhat.com>
+
+ * gtk/gtk.symbols:
+ * gtk/gtkprintunixdialog.[ch]:
+ Add gtk_print_unix_dialog_add_custom_tab
+
+ * gtk/gtkprintoperation-unix.c:
+ Implement custom widgets for unix.
+ Fix some warnings by including cairo-ps/pdf.h
+
+ * gtk/gtkprintoperation-win32.c:
+ Mark string for translation.
+
2006-05-22 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkprintoperation.c (gtk_print_operation_class_init):
+2006-05-23 Alexander Larsson <alexl@redhat.com>
+
+ * gtk/gtk.symbols:
+ * gtk/gtkprintunixdialog.[ch]:
+ Add gtk_print_unix_dialog_add_custom_tab
+
+ * gtk/gtkprintoperation-unix.c:
+ Implement custom widgets for unix.
+ Fix some warnings by including cairo-ps/pdf.h
+
+ * gtk/gtkprintoperation-win32.c:
+ Mark string for translation.
+
2006-05-22 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkprintoperation.c (gtk_print_operation_class_init):
gtk_print_unix_dialog_set_settings
gtk_print_unix_dialog_get_settings
gtk_print_unix_dialog_get_selected_printer
+gtk_print_unix_dialog_add_custom_tab
#endif
#endif
#endif
#include "gtkmarshal.h"
#include "gtkmessagedialog.h"
+#include <cairo-pdf.h>
+#include <cairo-ps.h>
#include "gtkprintunixdialog.h"
#include "gtkpagesetupunixdialog.h"
#include "gtkprintbackend.h"
#include "gtkprinter.h"
#include "gtkprintjob.h"
+#include "gtklabel.h"
#include "gtkalias.h"
#include "gtkintl.h"
+
typedef struct {
GtkPrintJob *job; /* the job we are sending to the printer */
gulong job_status_changed_tag;
GtkWindow *parent)
{
GtkPrintOperationPrivate *priv = op->priv;
- GtkWidget *pd;
+ GtkWidget *pd, *label;
GtkPageSetup *page_setup;
+ const char *app_name;
pd = gtk_print_unix_dialog_new (NULL, parent);
page_setup);
g_object_unref (page_setup);
+ g_signal_emit_by_name (op, "create-custom-widget",
+ &op->priv->custom_widget);
+
+ if (op->priv->custom_widget) {
+ app_name = g_get_application_name ();
+ if (app_name == NULL)
+ app_name = _("Application");
+
+ label = gtk_label_new (app_name);
+
+ gtk_print_unix_dialog_add_custom_tab (GTK_PRINT_UNIX_DIALOG (pd),
+ op->priv->custom_widget, label);
+ }
+
return pd;
}
settings = gtk_print_unix_dialog_get_settings (GTK_PRINT_UNIX_DIALOG (pd));
page_setup = gtk_print_unix_dialog_get_page_setup (GTK_PRINT_UNIX_DIALOG (pd));
+
+ g_signal_emit_by_name (rdata->op, "custom-widget-apply", rdata->op->priv->custom_widget);
}
out:
page.pResource = template;
app_name = g_get_application_name ();
if (app_name == NULL)
- app_name = "Application";
+ app_name = _("Application");
page.pszTitle = g_utf8_to_utf16 (app_name,
-1, NULL, NULL, NULL);
page.pfnDlgProc = pageDlgProc;
return settings;
}
+void
+gtk_print_unix_dialog_add_custom_tab (GtkPrintUnixDialog *dialog,
+ GtkWidget *child,
+ GtkWidget *tab_label)
+{
+ gtk_notebook_insert_page (GTK_NOTEBOOK (dialog->priv->notebook),
+ child, tab_label, 2);
+ gtk_widget_show (child);
+ gtk_widget_show (tab_label);
+}
+
#define __GTK_PRINT_UNIX_DIALOG_C__
#include "gtkaliasdef.c"
GtkPrintSettings *settings);
GtkPrintSettings *gtk_print_unix_dialog_get_settings (GtkPrintUnixDialog *dialog);
GtkPrinter * gtk_print_unix_dialog_get_selected_printer (GtkPrintUnixDialog *dialog);
-
+void gtk_print_unix_dialog_add_custom_tab (GtkPrintUnixDialog *dialog,
+ GtkWidget *child,
+ GtkWidget *tab_label);
G_END_DECLS